//Since then
//there is no spring or autumn in the world
//only winter or summer
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#include<map>
#include<set>
#include<cmath>
#include<deque>
#include<queue>
#include<stack>
#include<cstdio>
#include<string>
#include<vector>
#include<fstream>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<bits/stdc++.h>
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define ull unsigned long long
#define PII pair<int,int>
#define A cout<<"Alice\n";
#define B cout<<"Bob\n";
#define YES cout<<"YES\n";
#define NO cout<<"NO\n";
#define ll long long
using namespace std;
//ll qmi(ll a,ll b){ll res=1;while(b){if(b&1) (res*=a)%=mod;a=a*a%mod;b/=2;}return res;}
int dx[] = {0, 0, -1, 1, -1, 1, -1, 1};
int dy[] = {1, -1, 0, 0, -1, -1, 1, 1};
const float eqa = (1+sqrt(5.0))/2.0;
const float PI = 3.14159265359;
const int INF = 0x3f3f3f;
const int mod = 1e9 + 7;
const int N = 100010,P = 131;

int n,m;
ull h[N],p[N];
char str[N];

ull get(int l,int r)
{
    return h[r]-h[l-1]*p[r-l+1];
}

int main()
{
    cin>>n>>m>>str+1;

    p[0]=1;//p的0次方等于1
    for(int i=1;i<=n;i++)
    {
        p[i] = p[i-1]*P;
        h[i] = h[i-1]*P+str[i];
    }
    while(m--)
    {
        int l1,l2,r1,r2;
        cin>>l1>>r1>>l2>>r2;
        if(get(l1,r1)==get(l2,r2)) puts("Yes");
        else puts("No");
    }
    return 0;
}